#include <iostream>
using namespace std;

bool IsBitOne(int num, int index) {
	int mask = 0x0001<<index;
	return (mask&num);
}

int FindFirstBitOne(int num) {
	int mask = 0x0001, index = 0;
	while((num&mask) == 0) {
		mask <<= 1;
		index++;
	}

	return index;
}

void GetTwoNumber(int* data, int len, int& num1, int& num2) {
	int result = data[0];
	for (int i=1; i<len; i++)
		result ^= data[i];

	int index = FindFirstBitOne(result);
	for (int j=0; j<len; j++) {
		if (IsBitOne(data[j], index))
			num1 ^= data[j];
		else
			num2 ^= data[j];
	}
}

//int main(){
//	int sz[] = {1,2,3,3,4,5,5,6,7};
//	int num1 = 0, num2 = 0;
//	GetTwoNumber(sz, 9, num1, num2);
//
//	return 0;
//}